#include <furi.h>
#include <gui/gui.h>
#include <gui/view_dispatcher.h>
#include <gui/scene_manager.h>
#include <gui/modules/widget.h>
#include <gui/modules/submenu.h>
#include <gui/modules/text_input.h>
#include <ctype.h>

typedef enum {
    VinDecoderMainMenuScene,
    VinDecoderVinInputScene,
    VinDecoderVinMessageScene,
    VinDecoderAboutScene,
    VinDecoderSceneCount,
} VinDecoderScene;

typedef enum {
    VinDecoderSubmenuView,
    VinDecoderWidgetView,
    VinDecoderTextInputView,
} VinDecoderView;

typedef struct VinDecoderApp {
    SceneManager* scene_manager;
    ViewDispatcher* view_dispatcher;
    Submenu* submenu;
    Widget* widget;
    TextInput* text_input;
    char* vin;
    uint8_t vin_size;
} VinDecoderApp;

typedef enum {
    VinDecoderMainMenuSceneVinInput,
    VinDecoderMainMenuSceneAbout,
} VinDecoderMainMenuSceneIndex;

typedef enum {
    VinDecoderMainMenuSceneVinInputEvent,
    VinDecoderMainMenuSceneAboutEvent,
} VinDecoderMainMenuEvent;

typedef enum {
    VinDecoderVinInputSceneSaveEvent,
} VinDecoderVinInputEvent;

void vin_decoder_text_input_callback(void* context);
static bool vin_decoder_custom_callback(void* context, uint32_t custom_event);
bool vin_decoder_back_event_callback(void* context);
int get_vehicle_year(char vin_char);
const char* get_vehicle_manufacturer(const char* vin);

void vin_decoder_menu_callback(void* context, uint32_t index) {
    VinDecoderApp* app = context;
    switch (index) {
    case VinDecoderMainMenuSceneVinInput:
        scene_manager_handle_custom_event(app->scene_manager, VinDecoderMainMenuSceneVinInputEvent);
        break;
    case VinDecoderMainMenuSceneAbout:
        scene_manager_handle_custom_event(app->scene_manager, VinDecoderMainMenuSceneAboutEvent);
        break;
    }
}

void vin_decoder_main_menu_scene_on_enter(void* context) {
    VinDecoderApp* app = context;
    submenu_reset(app->submenu);
    submenu_set_header(app->submenu, "VIN Decoder App");
    submenu_add_item(
        app->submenu,
        "Enter VIN",
        VinDecoderMainMenuSceneVinInput,
        vin_decoder_menu_callback,
        app);
    submenu_add_item(
        app->submenu,
        "About",
        VinDecoderMainMenuSceneAbout,
        vin_decoder_menu_callback,
        app);
    view_dispatcher_switch_to_view(app->view_dispatcher, VinDecoderSubmenuView);
}

bool vin_decoder_main_menu_scene_on_event(void* context, SceneManagerEvent event) {
    VinDecoderApp* app = context;
    bool consumed = false;
    switch (event.type) {
    case SceneManagerEventTypeCustom:
        switch (event.event) {
        case VinDecoderMainMenuSceneVinInputEvent:
            scene_manager_next_scene(app->scene_manager, VinDecoderVinInputScene);
            consumed = true;
            break;
        case VinDecoderMainMenuSceneAboutEvent:
            scene_manager_next_scene(app->scene_manager, VinDecoderAboutScene);
            consumed = true;
            break;
        }
        break;
    default:
        break;
    }
    return consumed;
}

void vin_decoder_main_menu_scene_on_exit(void* context) {
    VinDecoderApp* app = context;
    submenu_reset(app->submenu);
}

void vin_decoder_text_input_callback(void* context) {
    VinDecoderApp* app = context;

    if (strlen(app->vin) > 17) {
        app->vin[17] = '\0';
    }

    for (int i = 0; app->vin[i] != '\0'; i++) {
        app->vin[i] = toupper(app->vin[i]);
    }

    scene_manager_handle_custom_event(app->scene_manager, VinDecoderVinInputSceneSaveEvent);
}

void vin_decoder_vin_input_scene_on_enter(void* context) {
    VinDecoderApp* app = context;
    bool clear_text = true;
    text_input_reset(app->text_input);
    text_input_set_header_text(app->text_input, "Enter your 17-character VIN");

    text_input_set_result_callback(
        app->text_input,
        vin_decoder_text_input_callback,
        app,
        app->vin,
        app->vin_size,
        clear_text);

    app->vin[17] = '\0';

    view_dispatcher_switch_to_view(app->view_dispatcher, VinDecoderTextInputView);
}

bool vin_decoder_vin_input_scene_on_event(void* context, SceneManagerEvent event) {
    VinDecoderApp* app = context;
    bool consumed = false;
    if (event.type == SceneManagerEventTypeCustom) {
        if (event.event == VinDecoderVinInputSceneSaveEvent) {
            scene_manager_next_scene(app->scene_manager, VinDecoderVinMessageScene);
            consumed = true;
        }
    }
    return consumed;
}

void vin_decoder_vin_input_scene_on_exit(void* context) {
    UNUSED(context);
}

void vin_decoder_vin_message_scene_on_enter(void* context) {
    VinDecoderApp* app = context;
    widget_reset(app->widget);
    FuriString* message = furi_string_alloc();

    int year = get_vehicle_year(app->vin[9]);
    const char* manufacturer = get_vehicle_manufacturer(app->vin);

    furi_string_printf(
        message, "Your VIN is:\n%s\nManufacturer:\n%s\nYear: %d", app->vin, manufacturer, year);
    widget_add_string_multiline_element(
        app->widget, 5, 30, AlignLeft, AlignCenter, FontSecondary, furi_string_get_cstr(message));
    furi_string_free(message);
    view_dispatcher_switch_to_view(app->view_dispatcher, VinDecoderWidgetView);
}

bool vin_decoder_vin_message_scene_on_event(void* context, SceneManagerEvent event) {
    UNUSED(context);
    UNUSED(event);
    return false;
}

void vin_decoder_vin_message_scene_on_exit(void* context) {
    VinDecoderApp* app = context;
    widget_reset(app->widget);
}

void vin_decoder_about_scene_on_enter(void* context) {
    VinDecoderApp* app = context;
    widget_reset(app->widget);
    FuriString* about_message = furi_string_alloc();
    furi_string_printf(about_message, "VIN Decoder App\nVersion 0.2\nAuthor:evillero\n\nwww.github.com/evillero");
    widget_add_string_multiline_element(
        app->widget, 5, 30, AlignLeft, AlignCenter, FontSecondary, furi_string_get_cstr(about_message));
    furi_string_free(about_message);
    view_dispatcher_switch_to_view(app->view_dispatcher, VinDecoderWidgetView);
}

bool vin_decoder_about_scene_on_event(void* context, SceneManagerEvent event) {
    UNUSED(context);
    UNUSED(event);
    return false;
}

void vin_decoder_about_scene_on_exit(void* context) {
    VinDecoderApp* app = context;
    widget_reset(app->widget);
}

void (*const vin_decoder_scene_on_enter_handlers[])(void*) = {
    vin_decoder_main_menu_scene_on_enter,
    vin_decoder_vin_input_scene_on_enter,
    vin_decoder_vin_message_scene_on_enter,
    vin_decoder_about_scene_on_enter,
};

bool (*const vin_decoder_scene_on_event_handlers[])(void*, SceneManagerEvent) = {
    vin_decoder_main_menu_scene_on_event,
    vin_decoder_vin_input_scene_on_event,
    vin_decoder_vin_message_scene_on_event,
    vin_decoder_about_scene_on_event,
};

void (*const vin_decoder_scene_on_exit_handlers[])(void*) = {
    vin_decoder_main_menu_scene_on_exit,
    vin_decoder_vin_input_scene_on_exit,
    vin_decoder_vin_message_scene_on_exit,
    vin_decoder_about_scene_on_exit,
};

static const SceneManagerHandlers vin_decoder_scene_manager_handlers = {
    .on_enter_handlers = vin_decoder_scene_on_enter_handlers,
    .on_event_handlers = vin_decoder_scene_on_event_handlers,
    .on_exit_handlers = vin_decoder_scene_on_exit_handlers,
    .scene_num = VinDecoderSceneCount,
};

static bool vin_decoder_custom_callback(void* context, uint32_t custom_event) {
    furi_assert(context);
    VinDecoderApp* app = context;
    return scene_manager_handle_custom_event(app->scene_manager, custom_event);
}

bool vin_decoder_back_event_callback(void* context) {
    furi_assert(context);
    VinDecoderApp* app = context;
    return scene_manager_handle_back_event(app->scene_manager);
}

static VinDecoderApp* vin_decoder_app_alloc() {
    VinDecoderApp* app = malloc(sizeof(VinDecoderApp));
    app->vin_size = 18;
    app->vin = malloc(app->vin_size);
    app->scene_manager = scene_manager_alloc(&vin_decoder_scene_manager_handlers, app);
    app->view_dispatcher = view_dispatcher_alloc();

    view_dispatcher_set_event_callback_context(app->view_dispatcher, app);
    view_dispatcher_set_custom_event_callback(app->view_dispatcher, vin_decoder_custom_callback);
    view_dispatcher_set_navigation_event_callback(app->view_dispatcher, vin_decoder_back_event_callback);

    app->submenu = submenu_alloc();
    view_dispatcher_add_view(
        app->view_dispatcher, VinDecoderSubmenuView, submenu_get_view(app->submenu));
    app->widget = widget_alloc();
    view_dispatcher_add_view(
        app->view_dispatcher, VinDecoderWidgetView, widget_get_view(app->widget));
    app->text_input = text_input_alloc();
    view_dispatcher_add_view(
        app->view_dispatcher, VinDecoderTextInputView, text_input_get_view(app->text_input));

    return app;
}

static void vin_decoder_app_free(VinDecoderApp* app) {
    furi_assert(app);
    view_dispatcher_remove_view(app->view_dispatcher, VinDecoderSubmenuView);
    view_dispatcher_remove_view(app->view_dispatcher, VinDecoderWidgetView);
    view_dispatcher_remove_view(app->view_dispatcher, VinDecoderTextInputView);
    scene_manager_free(app->scene_manager);
    view_dispatcher_free(app->view_dispatcher);
    submenu_free(app->submenu);
    widget_free(app->widget);
    text_input_free(app->text_input);
    free(app->vin);
    free(app);
}

int get_vehicle_year(char vin_char) {
    switch (vin_char) {
    case 'T': return 1996;
    case 'V': return 1997;
    case 'W': return 1998;
    case 'X': return 1999;
    case 'Y': return 2000;
    case '1': return 2001;
    case '2': return 2002;
    case '3': return 2003;
    case '4': return 2004;
    case '5': return 2005;
    case '6': return 2006;
    case '7': return 2007;
    case '8': return 2008;
    case '9': return 2009;
    case 'A': return 2010;
    case 'B': return 2011;
    case 'C': return 2012;
    case 'D': return 2013;
    case 'E': return 2014;
    case 'F': return 2015;
    case 'G': return 2016;
    case 'H': return 2017;
    case 'J': return 2018;
    case 'K': return 2019;
    case 'L': return 2020;
    case 'M': return 2021;
    case 'N': return 2022;
    case 'P': return 2023;
    case 'R': return 2024;
    case 'S': return 2025;
    default: return -1;
    }
}

typedef struct {
    char code[4];  
    const char* name;
} Manufacturer;

static const Manufacturer manufacturers[] = {
    {"WEG", "Ablinger"},
    {"RKT", "Access Motor"},
    {"ZA0", "Acerbi"},
    {"WAF", "Ackermann"},
    {"ZDJ", "ACM Biagini"},
    {"JH4", "Acura"},
    {"2HH", "Acura"},
    {"2HN", "Acura"},
    {"19U", "Acura"},
    {"19V", "Acura"},
    {"JAE", "Acura SLX"},
    {"5FR", "Acura SUV"},
    {"5J8", "Acura SUV"},
    {"4W5", "Acura ZDX EV"},
    {"W0L", "Adam Opel"},
    {"YBD", "Addax"},
    {"RFL", "Adly"},
    {"WSV", "Aebi Schmidt Group"},
    {"RF3", "Aeon Motor"},
    {"TKX", "Agados"},
    {"8BB", "Agrale"},
    {"9BY", "Agrale"},
    {"VLG", "Aixam-Mega"},
    {"ZAA", "Alfa Romeo"},
    {"ZAR", "Alfa Romeo"},
    {"ZAS", "Alfa Romeo"},
    {"ZAS", "Alfa Romeo"},
    {"TSF", "Alfabusz"},
    {"WAP", "Alpina"},
    {"137", "AM General Hummer"},
    {"XEA", "AmberAvto"},
    {"1AF", "American LaFrance"},
    {"4Z3", "American LaFrance"},
    {"1AM", "American Motors"},
    {"2CM", "American Motors Corp"},
    {"XE2", "AMKAR"},
    {"Y9M", "AMS"},
    {"MBY", "AMW"},
    {"NNA", "Anadolu Isuzu"},
    {"SKL", "Anaig"},
    {"LA8", "Anhui Ankai"},
    {"LK2", "Anhui JAC Bus"},
    {"ZC1", "AnsaldoBreda"},
    {"XLJ", "Anssems"},
    {"ZD4", "Aprilia"},
    {"7F7", "Arcimoto"},
    {"5AX", "Armor"},
    {"UU3", "ARO"},
    {"SX7", "Arthur Bus"},
    {"VGT", "ASCA"},
    {"MB1", "Ashok"},
    {"KN1", "Asia Motors"},
    {"KN2", "Asia Motors"},
    {"SCF", "Aston Martin"},
    {"SD7", "Aston Martin"},
    {"UU9", "Astra Bus"},
    {"2CG", "Asuna/Pontiac"},
    {"MYH", "Ather Energy"},
    {"YA2", "Atlas Copco"},
    {"MCG", "Atul Auto"},
    {"AAA", "Audi"},
    {"TRU", "Audi"},
    {"93U", "Audi"},
    {"99A", "Audi"},
    {"WAU", "Audi car"},
    {"WUA", "Audi Sport"},
    {"WU1", "Audi Sport"},
    {"WA1", "Audi SUV"},
    {"WAC", "Audi/Porsche RS2 Avant"},
    {"EAA", "Aurus Motors"},
    {"UA1", "AUSA Center"},
    {"SAA", "Austin"},
    {"SAX", "Austin-Rover"},
    {"ZAA", "Autobianchi"},
    {"516", "Autocar truck"},
    {"SUA", "Autosan"},
    {"12A", "Avanti"},
    {"TNA", "Avia/Daewoo"},
    {"SGA", "Avondale"},
    {"XU6", "Avtodom"},
    {"VZ2", "Avtomontaza"},
    {"XUU", "AvtoTor"},
    {"XWE", "AvtoTor"},
    {"XWF", "AvtoTor"},
    {"X4X", "AvtoTor"},
    {"8LG", "Aymesa"},
    {"SPE", "B-ON"},
    {"LKC", "BAIC"},
    {"AFD", "BAIC Automotive"},
    {"LNB", "BAIC Motor"},
    {"SGB", "Bailey"},
    {"MD2", "Bajaj Auto"},
    {"1BL", "Balko"},
    {"LZP", "Baotian"},
    {"L82", "Baotian"},
    {"HJ4", "BAW"},
    {"Y7F", "BAZ"},
    {"6KT", "BCI Bus"},
    {"1BN", "Beall Trailers"},
    {"SKF", "Bedford"},
    {"LHB", "Beijing"},
    {"LRD", "Beijing"},
    {"LXV", "Beijing"},
    {"LE4", "Beijing Benz-Daimler"},
    {"LBE", "Beijing Hyundai"},
    {"Y3J", "Belkommunmash"},
    {"VH1", "Benalu SAS"},
    {"MER", "Benelli"},
    {"ZBN", "Benelli"},
    {"SCB", "Bentley"},
    {"SJA", "Bentley SUV"},
    {"LD5", "Benzhou Vehicle"},
    {"ZBB", "Bertone"},
    {"V6A", "Bestnet"},
    {"ZD3", "Beta Motor"},
    {"ZES", "Bimota"},
    {"WBJ", "Bitter Cars"},
    {"7SU", "Blue Arc"},
    {"1BA", "Blue Bird"},
    {"1BB", "Blue Bird"},
    {"1BD", "Blue Bird"},
    {"VL4", "Bluecar"},
    {"WB2", "Blyss"},
    {"NMC", "BMC"},
    {"ABM", "BMW"},
    {"MMF", "BMW"},
    {"3MW", "BMW"},
    {"4US", "BMW"},
    {"98M", "BMW"},
    {"PM1", "BMW & Mini"},
    {"LBV", "BMW Brilliance"},
    {"WBA", "BMW"},
    {"WBY", "BMW i"},
    {"WB5", "BMW i SUV"},
    {"WBS", "BMW M"},
    {"3MF", "BMW M"},
    {"5UM", "BMW M"},
    {"5YM", "BMW M SUV"},
    {"95V", "BMW motorcycles"},
    {"WB1", "BMW Motorrad"},
    {"WB3", "BMW Motorrad"},
    {"WB4", "BMW Motorrad"},
    {"99Z", "BMW Motorrad"},
    {"WBX", "BMW SUV"},
    {"5UX", "BMW SUV"},
    {"SVS", "BODEX"},
    {"Y6J", "Bogdan"},
    {"Y6L", "Bogdan"},
    {"Y7B", "Bogdan group"},
    {"XJY", "Bonum"},
    {"SZL", "Boro Trailers"},
    {"TBS", "Boschung"},
    {"NRE", "Bozankaya"},
    {"51R", "Brammo Motorcycles"},
    {"ZCZ", "BredaBus"},
    {"UH2", "Brenderup"},
    {"V6B", "Brentex"},
    {"SJB", "Brian James"},
    {"LSY", "Brilliance"},
    {"X9W", "Brilliance"},
    {"3JB", "BRP"},
    {"VGW", "BSLT"},
    {"TEB", "Bucher"},
    {"5MZ", "Buell"},
    {"95Z", "Buell"},
    {"4MZ", "Buell Motorcycle Company"},
    {"PM9", "Bufori"},
    {"W04", "Buick"},
    {"2G4", "Buick"},
    {"1G4", "Buick"},
    {"3G4", "Buick"},
    {"5GA", "Buick MPV/SUV"},
    {"3G5", "Buick SUV"},
    {"XLK", "Burg"},
    {"99L", "BYD"},
    {"LC0", "BYD Auto"},
    {"LGX", "BYD Auto"},
    {"LPE", "BYD Auto"},
    {"ZDY", "Cacciamali"},
    {"2G6", "Cadillac"},
    {"2GE", "Cadillac"},
    {"1G6", "Cadillac"},
    {"1GE", "Cadillac"},
    {"1GY", "Cadillac"},
    {"YSC", "Cadillac BLS"},
    {"W06", "Cadillac Catera"},
    {"3GY", "Cadillac SUV"},
    {"ZCG", "Cagiva/MV Agusta"},
    {"ST3", "Calabrese"},
    {"UHL", "Camp-let"},
    {"RLV", "Can-Am"},
    {"2BZ", "Can-Am"},
    {"2BV", "Can-Am & Bombardier ATV"},
    {"2BW", "Can-Am Commander E LSV"},
    {"2BX", "Can-Am Spyder"},
    {"7TN", "Canoo"},
    {"95P", "CAOA"},
    {"4LM", "Capacity of Texas"},
    {"VFG", "Caravelair"},
    {"ZB3", "Cardi"},
    {"ZE5", "Carmosino"},
    {"4YM", "Carry-On"},
    {"SMW", "Cartwright"},
    {"ZD5", "Casalini"},
    {"SDK", "Caterham"},
    {"1HS", "Caterpillar"},
    {"1HT", "Caterpillar"},
    {"3HS", "Caterpillar Trucks"},
    {"TWG", "CeatanoBus"},
    {"7H8", "Cenntro"},
    {"LCE", "CFMOTO"},
    {"AAW", "Challenger"},
    {"LS4", "Changan"},
    {"LS5", "Changan"},
    {"LS6", "Changan"},
    {"LSC", "Changan Automobile"},
    {"LVS", "Changan Ford"},
    {"LVR", "Changan Mazda"},
    {"LPA", "Changan PSA"},
    {"LVF", "Changhe Suzuki"},
    {"LFY", "Changshu Light Motorcycle Factory"},
    {"LAN", "Changzhou Yamasaki"},
    {"1CM", "Checker Motors"},
    {"LNN", "Chery"},
    {"LVT", "Chery"},
    {"LVU", "Chery"},
    {"LVV", "Chery"},
    {"PRH", "Chery"},
    {"98R", "Chery"},
    {"9UJ", "Chery"},
    {"LVM", "Chery Commercial Vehicle"},
    {"LUR", "Chery,iCar"},
    {"VKD", "Cheval Liberte"},
    {"J8B", "Chevrolet"},
    {"J8C", "Chevrolet"},
    {"J8Z", "Chevrolet"},
    {"MMM", "Chevrolet"},
    {"2G1", "Chevrolet"},
    {"2GA", "Chevrolet"},
    {"2GB", "Chevrolet"},
    {"2GN", "Chevrolet"},
    {"1G1", "Chevrolet"},
    {"1G8", "Chevrolet"},
    {"1GA", "Chevrolet"},
    {"1GB", "Chevrolet"},
    {"1GN", "Chevrolet"},
    {"1HA", "Chevrolet"},
    {"3G1", "Chevrolet"},
    {"8AG", "Chevrolet"},
    {"8GG", "Chevrolet"},
    {"9BG", "Chevrolet"},
    {"9GA", "Chevrolet"},
    {"4G1", "Chevrolet Cavalier"},
    {"2G8", "Chevrolet MPV"},
    {"3GN", "Chevrolet SUV"},
    {"93C", "Chevrolet SUV"},
    {"2GC", "Chevrolet truck"},
    {"1GC", "Chevrolet truck"},
    {"3GC", "Chevrolet truck"},
    {"JG1", "Chevrolet/Geo"},
    {"JGC", "Chevrolet/Geo"},
    {"J81", "Chevrolet/Geo"},
    {"1Y1", "Chevrolet/Geo"},
    {"RKM", "China Motor"},
    {"XTS", "ChMZAP"},
    {"LHJ", "Chongqing"},
    {"LWM", "Chongqing"},
    {"LXY", "Chongqing"},
    {"LX8", "Chongqing"},
    {"L1K", "Chongqing"},
    {"LAP", "Chongqing Jianshe"},
    {"LB4", "Chongqing Yinxiang"},
    {"JJ3", "Chrysler"},
    {"ZC2", "Chrysler"},
    {"3A4", "Chrysler"},
    {"3C3", "Chrysler"},
    {"3C3", "Chrysler"},
    {"3C4", "Chrysler"},
    {"3C4", "Chrysler"},
    {"3C6", "Chrysler"},
    {"3C7", "Chrysler"},
    {"3C8", "Chrysler"},
    {"1C3", "Chrysler"},
    {"1C3", "Chrysler"},
    {"1C4", "Chrysler"},
    {"1C4", "Chrysler"},
    {"1C6", "Chrysler"},
    {"1C8", "Chrysler"},
    {"2C3", "Chrysler"},
    {"2C3", "Chrysler"},
    {"2C4", "Chrysler"},
    {"2C4", "Chrysler"},
    {"2C8", "Chrysler"},
    {"4C3", "Chrysler"},
    {"3A8", "Chrysler"},
    {"MZZ", "Citroen"},
    {"TW6", "Citroen"},
    {"VF7", "Citroen"},
    {"VR7", "Citroen"},
    {"VS7", "Citroen"},
    {"8BC", "Citroen"},
    {"935", "Citroen"},
    {"9V7", "Citroen"},
    {"5J5", "Club Car"},
    {"SG4", "Coachman"},
    {"53G", "Coda Automotive"},
    {"43C", "Consulier"},
    {"1MR", "Continental"},
    {"5EO", "Cottrell"},
    {"RFT", "CPI"},
    {"1CY", "Crane Carrier Company"},
    {"TRK", "Credo bus"},
    {"V34", "Crobus"},
    {"4V0", "Crossroads RV"},
    {"LHW", "CRRC"},
    {"5YN", "Cruise"},
    {"TRC", "Csepel bus"},
    {"KLP", "CT&T United"},
    {"1CU", "Cushman Haulster"},
    {"UU1", "Dacia"},
    {"LDB", "Dadi Auto"},
    {"KMY", "Daelim Motor"},
    {"KL7", "Daewoo"},
    {"UU6", "Daewoo"},
    {"5GD", "Daewoo G2X"},
    {"KLA", "Daewoo/GM"},
    {"KLY", "Daewoo/GM"},
    {"KL1", "Daewoo/GM"},
    {"KL2", "Daewoo/GM"},
    {"KL3", "Daewoo/GM"},
    {"KL7", "Daewoo/GM"},
    {"KL8", "Daewoo/GM"},
    {"XLR", "DAF"},
    {"XLA", "DAF Bus"},
    {"XLV", "DAF Bus"},
    {"98P", "DAF Trucks"},
    {"95V", "Dafra Motos"},
    {"JD1", "Daihatsu"},
    {"JD2", "Daihatsu SUV"},
    {"JD4", "Daihatsu truck"},
    {"JDA", "Daihatsu, Subaru Justy"},
    {"MEC", "Daimler"},
    {"LDD", "Dandong Huanghai"},
    {"LG6", "Dayun Group"},
    {"UH2", "De Forenede"},
    {"ZDT", "De Tomaso"},
    {"SCE", "DeLorean Motor"},
    {"SEG", "Dennis Eagle"},
    {"VTH", "Derbi"},
    {"WDT", "Dethleffs"},
    {"LVP", "DFSK"},
    {"LVZ", "DFSK"},
    {"MKF", "DFSK"},
    {"X21", "Diesel-S"},
    {"MC4", "Dilip"},
    {"Y9T", "Dnipro"},
    {"1B6", "Dodg"},
    {"JB3", "Dodge"},
    {"1B3", "Dodge"},
    {"2D6", "Dodge"},
    {"3B3", "Dodge"},
    {"3B4", "Dodge"},
    {"3B6", "Dodge"},
    {"3B7", "Dodge"},
    {"1D3", "Dodge"},
    {"1D4", "Dodge"},
    {"1D7", "Dodge"},
    {"1D8", "Dodge"},
    {"2B3", "Dodge"},
    {"2B4", "Dodge"},
    {"2B5", "Dodge"},
    {"2B7", "Dodge"},
    {"4B3", "Dodge"},
    {"937", "Dodge"},
    {"2D4", "Dodge MPV"},
    {"2D8", "Dodge MPV"},
    {"JB4", "Dodge MPV/SUV"},
    {"WDW", "Dodge Sprinter"},
    {"WDX", "Dodge Sprinter"},
    {"WD0", "Dodge Sprinter"},
    {"WD8", "Dodge Sprinter"},
    {"1B4", "Dodge SUV"},
    {"3D4", "Dodge SUV"},
    {"JB7", "Dodge truck"},
    {"1B7", "Dodge truck"},
    {"2D7", "Dodge truck"},
    {"3D3", "Dodge truck"},
    {"3D7", "Dodge truck"},
    {"SDF", "Dodge Trucks"},
    {"SEP", "Don-Bur"},
    {"LEW", "Dongfeng"},
    {"LGA", "Dongfeng"},
    {"LGB", "Dongfeng"},
    {"LGC", "Dongfeng"},
    {"LGF", "Dongfeng"},
    {"LGJ", "Dongfeng"},
    {"LUD", "Dongfeng"},
    {"LUX", "Dongfeng"},
    {"9UT", "Dongfeng"},
    {"LLU", "Dongfeng Fengxing"},
    {"LVH", "Dongfeng Honda"},
    {"LGG", "Dongfeng Liuzhou Motor"},
    {"LGB", "Dongfeng Nissan"},
    {"7KY", "Dorsey"},
    {"LDC", "DPCA"},
    {"ZPY", "DR Automobiles"},
    {"VR1", "DS Automobiles"},
    {"ZDM", "Ducati"},
    {"ZKC", "Ducati Energia"},
    {"ML0", "Ducati Motor"},
    {"2DN", "Dynasty"},
    {"4EN", "E-ONE"},
    {"RK3", "E-Ton"},
    {"10R", "E-Z-GO"},
    {"WEL", "e.GO Mobile"},
    {"TSE", "EAG"},
    {"4E3", "Eagle"},
    {"JE3", "Eagle car"},
    {"2E3", "Eagle car"},
    {"2XM", "Eagle Premier"},
    {"546", "EBR"},
    {"T7A", "Ebusco"},
    {"XL3", "Ebusco"},
    {"YC3", "Eduard"},
    {"MC2", "Eicher Motors"},
    {"MAN", "Eicher Polaris"},
    {"SGE", "Elddis"},
    {"ZEB", "Ellebi"},
    {"R4N", "Elyx Smart"},
    {"ZNN", "Energica"},
    {"LTW", "Enovate"},
    {"SAF", "ERF trucks"},
    {"UU7", "Euro Bus Diamond"},
    {"EAU", "EVM"},
    {"WEB", "Evobus"},
    {"R2P", "Evoke"},
    {"EAN", "Evolute"},
    {"1XA", "Excalibur"},
    {"5EH", "Excelsior-Henderson"},
    {"ZFM", "Fantic Motor"},
    {"7G0", "Faraday Future"},
    {"HGL", "Farizon"},
    {"V1Y", "FAS Sanos bus"},
    {"AAK", "FAW"},
    {"LFP", "FAW"},
    {"LDK", "FAW Bus"},
    {"LFN", "FAW Bus"},
    {"LFB", "FAW Group"},
    {"LFW", "FAW JieFang"},
    {"LFM", "FAW Toyota"},
    {"LTV", "FAW Toyota"},
    {"LFT", "FAW trailers"},
    {"LH1", "FAW-Haima"},
    {"LFV", "FAW-Volkswagen"},
    {"YAF", "Faymonville"},
    {"YAM", "Faymonville"},
    {"ZH5", "FB Mondial"},
    {"MCA", "FCA"},
    {"46J", "Federal Motors Inc"},
    {"5FT", "Feeling Trailers"},
    {"WFC", "Fendt"},
    {"ZFF", "Ferrari"},
    {"ZDF", "Ferrari Dino"},
    {"ZSG", "Ferrari SUV"},
    {"TFH", "FHS"},
    {"MAH", "Fiat"},
    {"VXF", "Fiat"},
    {"ZFA", "Fiat"},
    {"ZFB", "Fiat"},
    {"8AP", "Fiat"},
    {"9BD", "Fiat"},
    {"9VC", "Fiat"},
    {"JC1", "Fiat 124 Spider"},
    {"93W", "Fiat Ducato"},
    {"3E4", "Fiat SUV"},
    {"ZFC", "Fiat truck"},
    {"VYF", "Fiat van"},
    {"VCF", "Fisker"},
    {"WFD", "Fliegl"},
    {"1GF", "Flxible bus"},
    {"SFN", "Foden"},
    {"YU1", "Fogelsta"},
    {"13N", "Fontaine"},
    {"MC1", "Force Motors"},
    {"AFA", "Ford"},
    {"JC0", "Ford"},
    {"MAJ", "Ford"},
    {"MNA", "Ford"},
    {"MNB", "Ford"},
    {"MPB", "Ford"},
    {"NM0", "Ford"},
    {"PE1", "Ford"},
    {"PR8", "Ford"},
    {"RHA", "Ford"},
    {"RL0", "Ford"},
    {"SFA", "Ford"},
    {"UN1", "Ford"},
    {"VS6", "Ford"},
    {"WF0", "Ford"},
    {"XLC", "Ford"},
    {"X9F", "Ford"},
    {"Y4F", "Ford"},
    {"Z6F", "Ford"},
    {"2FA", "Ford"},
    {"2FM", "Ford"},
    {"3FA", "Ford"},
    {"3FC", "Ford"},
    {"3FE", "Ford"},
    {"3FR", "Ford"},
    {"1FA", "Ford"},
    {"1FB", "Ford"},
    {"1FC", "Ford"},
    {"1FD", "Ford"},
    {"1FM", "Ford"},
    {"1F1", "Ford"},
    {"1F6", "Ford"},
    {"1ZV", "Ford"},
    {"5LD", "Ford"},
    {"6F1", "Ford"},
    {"6FP", "Ford"},
    {"7A5", "Ford"},
    {"8AF", "Ford"},
    {"8XD", "Ford"},
    {"9BF", "Ford"},
    {"JC2", "Ford Courier"},
    {"3FN", "Ford F-650/F-750"},
    {"KNJ", "Ford Festiva"},
    {"TW2", "Ford Lusitana"},
    {"3FM", "Ford MPV/SUV"},
    {"2FT", "Ford truck"},
    {"3FT", "Ford truck"},
    {"1FT", "Ford truck"},
    {"4X4", "Forest River"},
    {"5NH", "Forest River"},
    {"5ZT", "Forest River"},
    {"LMX", "Forthing"},
    {"LB5", "Foshan City"},
    {"MP5", "Foton"},
    {"LVA", "Foton Motor"},
    {"LVC", "Foton Motor bus"},
    {"LVB", "Foton Motor truck"},
    {"X2L", "Fox"},
    {"XZT", "FoxBus"},
    {"SAZ", "Freight Rover"},
    {"WCD", "Freightliner"},
    {"2FU", "Freightliner"},
    {"2FV", "Freightliner"},
    {"1FU", "Freightliner"},
    {"1FV", "Freightliner"},
    {"W1H", "Freightliner Econic"},
    {"WDP", "Freightliner Sprinter"},
    {"WDR", "Freightliner Sprinter"},
    {"WDY", "Freightliner Sprinter"},
    {"WD1", "Freightliner Sprinter"},
    {"WD2", "Freightliner Sprinter"},
    {"WD5", "Freightliner Sprinter"},
    {"W2W", "Freightliner Sprinter"},
    {"W2X", "Freightliner Sprinter"},
    {"W2Y", "Freightliner Sprinter"},
    {"W2Z", "Freightliner Sprinter"},
    {"3AK", "Freightliner Trucks"},
    {"3AL", "Freightliner Trucks"},
    {"WD6", "Freightliner Unimog"},
    {"WD7", "Freightliner Unimog"},
    {"1FG", "Freightliner Unimog"},
    {"SFR", "Fruehauf"},
    {"VFK", "Fruehauf"},
    {"SUL", "FSC"},
    {"SUF", "FSM/Fiat"},
    {"SUP", "FSO"},
    {"LB1", "Fujian Benz"},
    {"LFJ", "Fujian Motors"},
    {"LNA", "GAC"},
    {"LWV", "GAC"},
    {"PRN", "GAC"},
    {"LMW", "GAC Group"},
    {"LHG", "GAC Honda"},
    {"LL6", "GAC Mitsubishi"},
    {"LMG", "GAC Motor"},
    {"LVG", "GAC Toyota"},
    {"UJG", "Garia"},
    {"VTR", "Gas Gas"},
    {"XTH", "GAZ"},
    {"X96", "GAZ"},
    {"Y7D", "GAZ"},
    {"L6T", "Geely"},
    {"Y4K", "Geely"},
    {"Y7W", "Geely"},
    {"LB3", "Geely Automobile"},
    {"L10", "Geely Emgrand"},
    {"LB2", "Geely Motorcycles"},
    {"5AS", "GEM"},
    {"52C", "GEM"},
    {"6G1", "General Motors"},
    {"6G3", "General Motors"},
    {"6H8", "General Motors"},
    {"ADM", "General Motors"},
    {"4G5", "General Motors"},
    {"8LD", "General Motors"},
    {"8Z1", "General Motors"},
    {"2Gx", "General Motors"},
    {"XUF", "General Motors"},
    {"KMT", "Genesis Motor"},
    {"KMU", "Genesis Motor SUV"},
    {"2CN", "Geo/Chevrolet"},
    {"2C1", "Geo/Chevrolet"},
    {"46G", "Gillig"},
    {"15G", "Gillig bus"},
    {"SA3", "Ginetta Cars"},
    {"MA6", "GM"},
    {"MCB", "GM"},
    {"MJB", "GM"},
    {"KL5", "GM Daewoo"},
    {"KL6", "GM Daewoo"},
    {"4W1", "GM Defense"},
    {"KL4", "GM Korea"},
    {"X9L", "GM-AvtoVAZ"},
    {"JGT", "GMC"},
    {"J8D", "GMC"},
    {"J8T", "GMC"},
    {"2G0", "GMC"},
    {"2GD", "GMC"},
    {"2GH", "GMC"},
    {"2GJ", "GMC"},
    {"2GK", "GMC"},
    {"1G0", "GMC"},
    {"1G0", "GMC"},
    {"1G5", "GMC"},
    {"1GD", "GMC"},
    {"1GH", "GMC"},
    {"1GJ", "GMC"},
    {"1GK", "GMC"},
    {"7GZ", "GMC i"},
    {"2G5", "GMC MPV"},
    {"3GK", "GMC SUV"},
    {"2CT", "GMC Terrain"},
    {"2CK", "GMC Tracker"},
    {"1GT", "GMC Truck"},
    {"2GT", "GMC truck"},
    {"3GT", "GMC truck"},
    {"XTF", "GolAZ"},
    {"WG0", "Goldhofer"},
    {"LCR", "Gonow"},
    {"1G9", "Google"},
    {"WGB", "Goppel Bus"},
    {"VRW", "Goupil"},
    {"UD3", "Granalu"},
    {"VK2", "Grandin"},
    {"U6A", "Granus"},
    {"SMX", "Gray & Adams"},
    {"X90", "GRAZ"},
    {"1GR", "Great Dane Trailers"},
    {"LGW", "Great Wall Motor"},
    {"XZG", "Great Wall Motor"},
    {"X9X", "Great Wall Motors"},
    {"Y7C", "Great Wall Motors"},
    {"8L4", "Great Wall Motors"},
    {"VJY", "Gruau"},
    {"VJ4", "Gruau"},
    {"LE8", "Guangzhou"},
    {"LP6", "Guangzhou"},
    {"LZU", "Guangzhou Isuzu"},
    {"LGL", "Guilin Daewoo"},
    {"VWF", "Guillen"},
    {"XZP", "Gut Trailer"},
    {"MNU", "GWM"},
    {"LKH", "Hafei Motor"},
    {"LMV", "Haima"},
    {"WHW", "Hako"},
    {"WMU", "Hako"},
    {"VAH", "Hangler"},
    {"99K", "Haojue & Kymco"},
    {"MEG", "Harley-Davidson"},
    {"MLY", "Harley-Davidson"},
    {"1HD", "Harley-Davidson"},
    {"932", "Harley-Davidson"},
    {"5HD", "Harley-Davidson"},
    {"7MZ", "HDK"},
    {"5HT", "Heil Trailer"},
    {"LS8", "Henan"},
    {"MBL", "Hero"},
    {"UKR", "Hero Camper"},
    {"LGV", "Heshan"},
    {"VJ1", "Heuliez Bus"},
    {"PML", "Hicom"},
    {"LKL", "Higer Bus"},
    {"MA7", "Hindustan Motors"},
    {"AHH", "Hino"},
    {"JHA", "Hino"},
    {"JHB", "Hino"},
    {"JHD", "Hino"},
    {"JHF", "Hino"},
    {"JHH", "Hino"},
    {"MNK", "Hino"},
    {"7H4", "Hino truck"},
    {"R36", "HK Shansu"},
    {"44K", "HME"},
    {"WHB", "Hobby"},
    {"MMU", "Holden"},
    {"1GH", "Holden"},
    {"3G0", "Holden"},
    {"3GM", "Holden Suburban"},
    {"5G8", "Holden Volt"},
    {"W0L", "Holden Zafira"},
    {"AHM", "Honda"},
    {"MAK", "Honda"},
    {"ME4", "Honda"},
    {"MHR", "Honda"},
    {"MRH", "Honda"},
    {"NLA", "Honda"},
    {"NMH", "Honda"},
    {"PAD", "Honda"},
    {"PMH", "Honda"},
    {"PMK", "Honda"},
    {"RK3", "Honda"},
    {"RLH", "Honda"},
    {"SAH", "Honda"},
    {"SHH", "Honda"},
    {"SHS", "Honda"},
    {"YC1", "Honda"},
    {"ZDC", "Honda"},
    {"2HG", "Honda"},
    {"2HJ", "Honda"},
    {"2HK", "Honda"},
    {"1HG", "Honda"},
    {"3H1", "Honda"},
    {"3HG", "Honda"},
    {"7A3", "Honda"},
    {"8C3", "Honda"},
    {"93H", "Honda"},
    {"NFB", "Honda Atlas"},
    {"478", "Honda ATV"},
    {"LUC", "Honda Automobile"},
    {"19X", "Honda car"},
    {"5KB", "Honda car"},
    {"1HF", "Honda moto/ATV/UTV"},
    {"8CH", "Honda motorcycle"},
    {"5FN", "Honda MPV/SUV"},
    {"3GP", "Honda Prologue"},
    {"3CZ", "Honda SUV"},
    {"4S6", "Honda SUV"},
    {"5J6", "Honda SUV"},
    {"7FA", "Honda SUV"},
    {"5FP", "Honda truck"},
    {"WHD", "Humbaur"},
    {"5GR", "Hummer H2"},
    {"5GT", "Hummer H3"},
    {"5GN", "Hummer H3T"},
    {"YU7", "Husaberg"},
    {"VBK", "Husqvarna"},
    {"ZCG", "Husqvarna"},
    {"ZHU", "Husqvarna"},
    {"ZKH", "Husqvarna"},
    {"WHY", "Hymer"},
    {"AC5", "Hyundai"},
    {"KMF", "Hyundai"},
    {"KMH", "Hyundai"},
    {"MAL", "Hyundai"},
    {"MB2", "Hyundai"},
    {"MX3", "Hyundai"},
    {"NLH", "Hyundai"},
    {"NLJ", "Hyundai"},
    {"PFD", "Hyundai"},
    {"PP3", "Hyundai"},
    {"TMC", "Hyundai"},
    {"X7M", "Hyundai"},
    {"Z94", "Hyundai"},
    {"2HM", "Hyundai"},
    {"3H3", "Hyundai"},
    {"5NP", "Hyundai"},
    {"7YA", "Hyundai"},
    {"9BH", "Hyundai"},
    {"KMX", "Hyundai Galloper"},
    {"KMJ", "Hyundai bus"},
    {"TMA", "Hyundai Motor"},
    {"KM8", "Hyundai SUV"},
    {"5NM", "Hyundai SUV"},
    {"KMC", "Hyundai truck"},
    {"5NT", "Hyundai truck"},
    {"KME", "Hyundai truck"},
    {"SED", "IBC"},
    {"1HV", "IC Bus"},
    {"4DR", "IC Bus"},
    {"SCK", "Ifor Williams"},
    {"V2X", "Ikarbus"},
    {"TRA", "Ikarus Bus"},
    {"TSB", "Ikarus Bus"},
    {"2A3", "Imperial"},
    {"MXV", "IMZ-Ural"},
    {"X8J", "IMZ-Ural"},
    {"ZBD", "InBus"},
    {"SH7", "INEOS"},
    {"SC6", "INEOS SUV"},
    {"JNK", "Infiniti"},
    {"JNX", "Infiniti"},
    {"JNR", "Infiniti SUV"},
    {"3PC", "Infiniti SUV"},
    {"5N3", "Infiniti SUV"},
    {"ZJN", "Innocenti"},
    {"PL8", "Inokom-Hyundai"},
    {"SVM", "Inter"},
    {"2HS", "International Trucks"},
    {"2HT", "International Trucks"},
    {"XUZ", "InterPipeVAN"},
    {"WJR", "Irmscher"},
    {"5L5", "IronHorse"},
    {"ACV", "Isuzu"},
    {"JAA", "Isuzu"},
    {"JAB", "Isuzu"},
    {"JAL", "Isuzu"},
    {"JAM", "Isuzu"},
    {"LZE", "Isuzu"},
    {"MP1", "Isuzu"},
    {"PAB", "Isuzu"},
    {"PLZ", "Isuzu"},
    {"RLE", "Isuzu"},
    {"4KL", "Isuzu"},
    {"4S1", "Isuzu"},
    {"4S2", "Isuzu"},
    {"54D", "Isuzu & Chevrolet"},
    {"4NU", "Isuzu Ascender"},
    {"M3G", "Isuzu Motors"},
    {"MPA", "Isuzu Motors"},
    {"JR2", "Isuzu Oasis"},
    {"1GG", "Isuzu pickup"},
    {"Z7X", "Isuzu Rus"},
    {"JAC", "Isuzu SUV"},
    {"ZJT", "Italjet"},
    {"VF5", "Iveco"},
    {"UA2", "Iveco"},
    {"Y6B", "Iveco"},
    {"Z9N", "Iveco"},
    {"6F2", "Iveco"},
    {"8AT", "Iveco"},
    {"8XV", "Iveco"},
    {"93Z", "Iveco"},
    {"VNE", "Iveco Bus"},
    {"ZGA", "Iveco Bus"},
    {"ZN3", "Iveco Defence"},
    {"SBC", "Iveco Ford Truck"},
    {"ZCF", "Iveco/Irisbus"},
    {"WJM", "Iveco/Iveco"},
    {"XTK", "IzhAvto"},
    {"LJ1", "JAC"},
    {"SAJ", "Jaguar"},
    {"99J", "Jaguar Land Rover"},
    {"SAD", "Jaguar SUV"},
    {"MZD", "Jawa"},
    {"TLJ", "Jawa Moto"},
    {"6AM", "Jayco"},
    {"1UJ", "Jayco, Inc."},
    {"SLP", "JC Bamford"},
    {"1UT", "Jeep"},
    {"988", "Jeep and Fiat"},
    {"1JC", "Jeep SUV"},
    {"1J4", "Jeep SUV"},
    {"1J8", "Jeep SUV"},
    {"1JT", "Jeep truck"},
    {"1J7", "Jeep truck"},
    {"2J4", "Jeep Wrangler"},
    {"2BC", "Jeep Wrangler"},
    {"ZAC", "Jeep, Dodge"},
    {"SUJ", "Jelcz"},
    {"HJR", "Jetour"},
    {"LEF", "Jiangling Motors"},
    {"LET", "Jiangling-Isuzu"},
    {"LMF", "Jiangmen"},
    {"LLJ", "Jiangsu"},
    {"LMH", "Jiangsu"},
    {"LZ4", "Jiangsu"},
    {"R1J", "Jiayuan Power"},
    {"LAE", "Jinan Qingqi"},
    {"LV7", "Jinan Qingqi"},
    {"LJC", "Jincheng"},
    {"LS7", "JMC"},
    {"LJX", "JMC Ford"},
    {"LJW", "JMC Landwind"},
    {"LND", "JMEV"},
    {"1PY", "John Deere"},
    {"17N", "John Deere"},
    {"1M0", "John Deere Gator"},
    {"YB6", "Jonckheere"},
    {"NS2", "JV MAN"},
    {"YT7", "Kabe"},
    {"XTC", "KAMAZ"},
    {"5KT", "Karavan"},
    {"WMM", "Karl Muller"},
    {"50G", "Karma Automotive"},
    {"TMK", "Karosa"},
    {"NLN", "Karsan"},
    {"X1E", "KAvZ"},
    {"Z7N", "KAvZ"},
    {"JKA", "Kawasaki"},
    {"JKB", "Kawasaki"},
    {"JSK", "Kawasaki"},
    {"96P", "Kawasaki"},
    {"RK7", "Kawasaki ATV"},
    {"JSL", "Kawasaki KFX400 ATV"},
    {"ML5", "Kawasaki Motors"},
    {"TSY", "Keeway"},
    {"SKB", "Kel-Berg"},
    {"2XK", "Kenworth"},
    {"1NK", "Kenworth"},
    {"3WK", "Kenworth"},
    {"6F5", "Kenworth"},
    {"1XK", "Kenworth k"},
    {"MDT", "Kerala"},
    {"4YD", "KeyStone"},
    {"NVA", "Khazar"},
    {"KNE", "Kia"},
    {"KNF", "Kia"},
    {"MZB", "Kia"},
    {"PRX", "Kia"},
    {"U5Y", "Kia"},
    {"U6Y", "Kia"},
    {"9UW", "Kia"},
    {"KNA", "Kia"},
    {"5XX", "Kia"},
    {"KNG", "Kia minibus/bus"},
    {"KND", "Kia MPV/SUV"},
    {"KNC", "Kia truck"},
    {"3KM", "Kia/Hyundai"},
    {"3KP", "Kia/Hyundai"},
    {"5XY", "Kia/Hyundai SUV"},
    {"BF9", "KIBO"},
    {"BUK", "Kiira Motors"},
    {"MDE", "Kinetic"},
    {"LA6", "King Long"},
    {"ZFE", "KL Motorcycle"},
    {"XPN", "Knapen"},
    {"WKN", "Knaus"},
    {"YT9", "Koenigsegg"},
    {"WK0", "Kogel"},
    {"Y7S", "Korida-Tech"},
    {"XN1", "Kraker"},
    {"Y7A", "KrAZ"},
    {"WKE", "Krone"},
    {"VA4", "KSR"},
    {"VBK", "KTM"},
    {"3CG", "KTMMEX"},
    {"RKL", "Kuozui Motors"},
    {"Z9B", "KuzbassAvto"},
    {"LC2", "Kymco"},
    {"RFB", "Kymco"},
    {"XTJ", "Lada"},
    {"Y9Z", "Lada"},
    {"XTA", "Lada / AvtoVAZ"},
    {"YB4", "LAG"},
    {"ZHW", "Lamborghini"},
    {"ZPB", "Lamborghini SUV"},
    {"ZLA", "Lancia"},
    {"SAL", "Land Rover"},
    {"LVX", "Landwind"},
    {"WLA", "Langendorf"},
    {"DF9", "Laraki"},
    {"ZLV", "Laverda"},
    {"XTW", "LAZ"},
    {"Y8A", "LAZ"},
    {"Y9H", "LAZ"},
    {"SEY", "LDV Group"},
    {"LFZ", "Leapmotor"},
    {"VV1", "Lecitrailer"},
    {"1LV", "Lectra Motors"},
    {"Y6Y", "LEV"},
    {"JTH", "Lexus"},
    {"JT8", "Lexus"},
    {"58A", "Lexus"},
    {"JTJ", "Lexus SUV"},
    {"JT6", "Lexus SUV"},
    {"2T2", "Lexus SUV"},
    {"SBL", "Leyland"},
    {"SBJ", "Leyland Bus"},
    {"SBB", "Leyland Vehicles"},
    {"HLX", "Li Auto"},
    {"TNG", "LIAZ"},
    {"XTY", "LiAZ"},
    {"Y3F", "Lida Buses Neman"},
    {"WLF", "Liebherr"},
    {"LLV", "Lifan"},
    {"9UK", "Lifan"},
    {"LF3", "Lifan Motorcycle"},
    {"LFU", "Lifeng Group"},
    {"XL4", "Lightyear"},
    {"VJR", "Ligier"},
    {"2L1", "Lincoln"},
    {"2LJ", "Lincoln"},
    {"2LN", "Lincoln"},
    {"1LJ", "Lincoln"},
    {"1LN", "Lincoln"},
    {"3LN", "Lincoln"},
    {"5L1", "Lincoln"},
    {"1L1", "Lincoln limousine"},
    {"2LM", "Lincoln SUV"},
    {"5LM", "Lincoln SUV"},
    {"5LT", "Lincoln truck"},
    {"LXN", "Link Tour"},
    {"MD7", "LML"},
    {"VGY", "Lohr"},
    {"T3C", "Lohr Backa Topola"},
    {"LLC", "Loncin"},
    {"SCR", "London Taxi Company"},
    {"7NY", "Lordstown"},
    {"SCC", "Lotus"},
    {"XTD", "LuAZ"},
    {"7UU", "Lucid"},
    {"50E", "Lucid Motors"},
    {"NG3", "Lucky Motor"},
    {"1L0", "Lufkin Trailers"},
    {"Z7C", "Luidor"},
    {"SGL", "Lunar"},
    {"LAT", "Luoyang Northern"},
    {"RF5", "Luxgen"},
    {"YH2", "Lynx snowmobiles"},
    {"8XJ", "Mack"},
    {"1M1", "Mack Truck"},
    {"1M2", "Mack Truck"},
    {"1M3", "Mack Truck"},
    {"1M4", "Mack Truck"},
    {"2M1", "Mack Trucks"},
    {"2M2", "Mack Trucks"},
    {"6FM", "Mack Trucks"},
    {"9BN", "Mafersa"},
    {"VP3", "Magyar"},
    {"MAB", "Mahindra"},
    {"MAC", "Mahindra"},
    {"MA1", "Mahindra"},
    {"MCD", "Mahindra"},
    {"ZJM", "Malaguti"},
    {"NAC", "Mammut truck"},
    {"AAM", "MAN"},
    {"NMA", "MAN"},
    {"PMA", "MAN"},
    {"VAN", "MAN"},
    {"WMA", "MAN"},
    {"6AB", "MAN"},
    {"7AB", "MAN"},
    {"LZM", "MAN China"},
    {"MBK", "MAN Trucks"},
    {"R3M", "Mangosteen"},
    {"SCM", "Manitowoc Cranes"},
    {"1JU", "Marmon Motor Company"},
    {"SXX", "Martz"},
    {"Z8M", "Marussia"},
    {"MA3", "Maruti"},
    {"XVG", "MARZ"},
    {"ZAM", "Maserati"},
    {"ZN6", "Maserati SUV"},
    {"57C", "Maurer"},
    {"XTM", "MAZ"},
    {"Y3M", "MAZ"},
    {"JMZ", "Mazda"},
    {"JM0", "Mazda"},
    {"JM1", "Mazda"},
    {"JM2", "Mazda"},
    {"JM4", "Mazda"},
    {"JM6", "Mazda"},
    {"JM7", "Mazda"},
    {"PE3", "Mazda"},
    {"PP1", "Mazda"},
    {"YCM", "Mazda"},
    {"1YV", "Mazda"},
    {"3MD", "Mazda"},
    {"3MZ", "Mazda"},
    {"4F4", "Mazda"},
    {"8LF", "Mazda"},
    {"9FC", "Mazda"},
    {"AFB", "Mazda BT-50"},
    {"MP2", "Mazda BT-50"},
    {"JM3", "Mazda MPV/SUV"},
    {"3MV", "Mazda SUV"},
    {"4F2", "Mazda SUV"},
    {"7MM", "Mazda SUV"},
    {"VG5", "MBK"},
    {"SBM", "McLaren"},
    {"SLG", "McMurtry"},
    {"SUG", "Mega Trailers"},
    {"SXM", "MELEX"},
    {"ZCM", "Menarinibus"},
    {"ZHZ", "Menci"},
    {"8AB", "Mercedes Benz"},
    {"8AC", "Mercedes Benz"},
    {"WMX", "Mercedes-AMG"},
    {"ADB", "Mercedes-Benz"},
    {"BR1", "Mercedes-Benz"},
    {"MBR", "Mercedes-Benz"},
    {"NLE", "Mercedes-Benz"},
    {"NMB", "Mercedes-Benz"},
    {"RLM", "Mercedes-Benz"},
    {"VSA", "Mercedes-Benz"},
    {"WDA", "Mercedes-Benz"},
    {"WDD", "Mercedes-Benz"},
    {"WDF", "Mercedes-Benz"},
    {"WDZ", "Mercedes-Benz"},
    {"WD3", "Mercedes-Benz"},
    {"WD4", "Mercedes-Benz"},
    {"W1K", "Mercedes-Benz"},
    {"W1W", "Mercedes-Benz"},
    {"W1X", "Mercedes-Benz"},
    {"W1Y", "Mercedes-Benz"},
    {"W1Z", "Mercedes-Benz"},
    {"Z9M", "Mercedes-Benz"},
    {"1MB", "Mercedes-Benz"},
    {"55S", "Mercedes-Benz"},
    {"8BN", "Mercedes-Benz"},
    {"8BR", "Mercedes-Benz"},
    {"8BT", "Mercedes-Benz"},
    {"9BM", "Mercedes-Benz"},
    {"WDB", "Mercedes-Benz & Maybach"},
    {"WDC", "Mercedes-Benz SUV"},
    {"W1N", "Mercedes-Benz SUV"},
    {"4JG", "Mercedes-Benz SUV"},
    {"W1T", "Mercedes-Benz truck"},
    {"8BU", "Mercedes-Benz truck"},
    {"W1V", "Mercedes-Benz van"},
    {"2ME", "Mercury"},
    {"1ME", "Mercury"},
    {"1ZW", "Mercury"},
    {"3MA", "Mercury"},
    {"3ME", "Mercury"},
    {"6MP", "Mercury"},
    {"2MR", "Mercury MPV"},
    {"4M2", "Mercury MPV/SUV"},
    {"KF3", "Merkavim"},
    {"ZGP", "Merker"},
    {"WF1", "Merkur"},
    {"TKY", "Metaco"},
    {"MML", "MG"},
    {"MZ7", "MG Motor"},
    {"VJ2", "Mia Electric"},
    {"VH8", "Microcar"},
    {"WMW", "MINI"},
    {"TW7", "Mini Moke"},
    {"TX5", "Mini Moke"},
    {"WMZ", "MINI SUV"},
    {"ABJ", "Mitsubishi"},
    {"JA3", "Mitsubishi"},
    {"JA7", "Mitsubishi"},
    {"ML3", "Mitsubishi"},
    {"MMA", "Mitsubishi"},
    {"MMB", "Mitsubishi"},
    {"MMC", "Mitsubishi"},
    {"MMD", "Mitsubishi"},
    {"MME", "Mitsubishi"},
    {"MMT", "Mitsubishi"},
    {"4A3", "Mitsubishi"},
    {"4A4", "Mitsubishi"},
    {"4MB", "Mitsubishi"},
    {"4P3", "Mitsubishi"},
    {"6MM", "Mitsubishi"},
    {"7A1", "Mitsubishi"},
    {"ABJ", "Mitsubishi Fuso"},
    {"JW6", "Mitsubishi Fuso"},
    {"TYA", "Mitsubishi Fuso"},
    {"TYB", "Mitsubishi Fuso"},
    {"JLB", "Mitsubishi Fuso"},
    {"JLF", "Mitsubishi Fuso"},
    {"JL5", "Mitsubishi Fuso"},
    {"JL6", "Mitsubishi Fuso"},
    {"JL7", "Mitsubishi Fuso"},
    {"JE4", "Mitsubishi Motors"},
    {"JMA", "Mitsubishi Motors"},
    {"JMB", "Mitsubishi Motors"},
    {"JMF", "Mitsubishi Motors"},
    {"JMP", "Mitsubishi Motors"},
    {"JMR", "Mitsubishi Motors"},
    {"JMY", "Mitsubishi Motors"},
    {"JA4", "Mitsubishi MPV/SUV"},
    {"KPH", "Mitsubishi Precis"},
    {"1Z3", "Mitsubishi Raider"},
    {"PMN", "Modenas"},
    {"SD8", "Moke"},
    {"1NN", "Monon"},
    {"VTD", "Montesa Honda"},
    {"VTM", "Montesa Honda"},
    {"SMR", "Montracon"},
    {"SAM", "Morris"},
    {"XTB", "Moskvitch / AZLK"},
    {"ZGU", "Moto Guzzi"},
    {"9C2", "Moto Honda"},
    {"ZLM", "Moto Morini"},
    {"UMT", "MTDK"},
    {"Y3D", "MTM"},
    {"NRX", "Musoshi"},
    {"SDP", "NAC MG"},
    {"LNP", "NAC MG UK Limited"},
    {"Z8Y", "Nasteviya"},
    {"93S", "Navistar"},
    {"93V", "Navistar"},
    {"7NA", "Navistar Defense"},
    {"TAW", "NAW"},
    {"PNA", "Naza/Kia/Peugeot"},
    {"X1F", "NefAZ"},
    {"Y3K", "Neman Bus"},
    {"VXY", "Neobus"},
    {"WAG", "Neoplan"},
    {"SXE", "Neptun"},
    {"SY1", "Neso Bus"},
    {"LUZ", "Neta"},
    {"MRT", "Neta"},
    {"LTP", "NEVS"},
    {"LV3", "NEVS"},
    {"2FY", "New Flyer"},
    {"5FY", "New Flyer"},
    {"SLN", "Niftylift"},
    {"LJ1", "Nio, Inc."},
    {"ADN", "Nissan"},
    {"JNC", "Nissan"},
    {"JNE", "Nissan"},
    {"JN1", "Nissan"},
    {"JN3", "Nissan"},
    {"JPC", "Nissan"},
    {"MDH", "Nissan"},
    {"MNT", "Nissan"},
    {"PN8", "Nissan"},
    {"SJK", "Nissan"},
    {"SJN", "Nissan"},
    {"VNV", "Nissan"},
    {"VWA", "Nissan"},
    {"Z8N", "Nissan"},
    {"3N1", "Nissan"},
    {"3N6", "Nissan"},
    {"3N8", "Nissan"},
    {"4N2", "Nissan"},
    {"5BZ", "Nissan"},
    {"6F4", "Nissan"},
    {"7A7", "Nissan"},
    {"7B2", "Nissan"},
    {"8AN", "Nissan"},
    {"94D", "Nissan"},
    {"JN8", "Nissan & Infiniti"},
    {"5N1", "Nissan & Infiniti SUV"},
    {"JN6", "Nissan & Mitsubishi"},
    {"1N4", "Nissan"},
    {"VSK", "Nissan Motor"},
    {"1N6", "Nissan truck"},
    {"HA6", "Niu Technologies"},
    {"XUS", "Nizhegorodets"},
    {"EBZ", "Nizhekotrans bus"},
    {"XMR", "Nooteboom"},
    {"SAY", "Norton Motorcycles"},
    {"VPL", "Nosmoke"},
    {"2NV", "Nova Bus"},
    {"4RK", "Nova Bus"},
    {"YF3", "NTM"},
    {"SBF", "Nugent"},
    {"NPM", "Nursan"},
    {"W0D", "Obermaier"},
    {"NC0", "Oghab Afshan"},
    {"2G3", "Oldsmobile"},
    {"1G3", "Oldsmobile"},
    {"1GH", "Oldsmobile"},
    {"UU2", "Oltcit"},
    {"ZA4", "Omar"},
    {"2DG", "Ontario"},
    {"VSX", "Opel"},
    {"1G0", "Opel"},
    {"4GD", "Opel Sintra"},
    {"VXK", "Opel/Vauxhall"},
    {"W0V", "Opel/Vauxhall"},
    {"VXE", "Opel/Vauxhall van"},
    {"SAB", "Optare"},
    {"1Z9", "Orange County Choppers"},
    {"57R", "Oreion"},
    {"92H", "Origem"},
    {"2B1", "Orion Bus"},
    {"1VH", "Orion Bus Industries"},
    {"10T", "Oshkos"},
    {"NLR", "Otokar"},
    {"SA9", "OX Global"},
    {"NM1", "Oyak Renault"},
    {"XLD", "Pacton"},
    {"XNT", "Pacton"},
    {"TKP", "Panav"},
    {"NAP", "Pars Khodro"},
    {"Y9A", "PAVAM"},
    {"X1M", "PAZ"},
    {"Z8T", "PCMA"},
    {"VS1", "Pegaso"},
    {"PM2", "Perodua"},
    {"1NP", "Peterbilt"},
    {"1XP", "Peterbilt"},
    {"9DW", "Peterbilt"},
    {"2XP", "Peterbilt truck"},
    {"3WP", "Peterbilt truck"},
    {"PNA", "Peugeot"},
    {"VF3", "Peugeot"},
    {"VR3", "Peugeot"},
    {"VS8", "Peugeot"},
    {"8AD", "Peugeot"},
    {"8AE", "Peugeot"},
    {"8GD", "Peugeot"},
    {"936", "Peugeot"},
    {"9V8", "Peugeot Expert"},
    {"VGA", "Peugeot Motocycles"},
    {"Y6W", "PGFM"},
    {"RFV", "PGO"},
    {"ZBA", "Piacenza"},
    {"RP8", "Piaggio"},
    {"MBX", "Piaggio Ape"},
    {"MET", "Piaggio Vespa"},
    {"ZAP", "Piaggio/Vespa/Gilera"},
    {"4P1", "Pierce"},
    {"NRY", "Pilotcar"},
    {"ZFR", "Pininfarina"},
    {"XJ4", "PKTS"},
    {"JP3", "Plymouth"},
    {"2P3", "Plymouth"},
    {"2P5", "Plymouth"},
    {"1P3", "Plymouth"},
    {"1P4", "Plymouth"},
    {"3P3", "Plymouth"},
    {"4P3", "Plymouth"},
    {"2P4", "Plymouth MPV"},
    {"JP4", "Plymouth MPV/SUV"},
    {"1P7", "Plymouth Scamp"},
    {"JP7", "Plymouth truck"},
    {"4XA", "Polaris"},
    {"57X", "Polaris"},
    {"3NS", "Polaris ATV"},
    {"3NE", "Polaris UTV"},
    {"LPS", "Polestar"},
    {"YSM", "Polestar"},
    {"YSR", "Polestar SUV"},
    {"7SY", "Polestar SUV"},
    {"JG2", "Pontiac"},
    {"2CK", "Pontiac"},
    {"2G2", "Pontiac"},
    {"2G7", "Pontiac"},
    {"1G2", "Pontiac"},
    {"1G7", "Pontiac"},
    {"1GM", "Pontiac"},
    {"2C7", "Pontiac"},
    {"3G2", "Pontiac"},
    {"5Y2", "Pontiac"},
    {"6G2", "Pontiac"},
    {"4G2", "Pontiac Sunfire"},
    {"3G7", "Pontiac SUV"},
    {"JG7", "Pontiac/Asuna"},
    {"J87", "Pontiac/Asuna"},
    {"WP0", "Porsche"},
    {"WP1", "Porsche SUV"},
    {"Y9W", "Pragmatec"},
    {"MBV", "Premier"},
    {"2PC", "Prevost"},
    {"RKJ", "Prince Motors"},
    {"6U9", "Privately Imported"},
    {"7JZ", "Proterra"},
    {"PL1", "Proton"},
    {"MHK", "PT Astra"},
    {"MH1", "PT Astra Honda"},
    {"MF3", "PT Hyundai"},
    {"MHD", "PT Indomobil"},
    {"MH4", "PT Kawasak"},
    {"MHL", "PT Mercedes-Benz"},
    {"MK2", "PT Mitsubishi"},
    {"MK3", "PT SGMW"},
    {"MHY", "PT Suzuki Indomobil"},
    {"MH8", "PT Suzuki Indomobil"},
    {"MHF", "PT Toyota"},
    {"MH3", "PT Yamaha"},
    {"9DF", "Puma"},
    {"LUG", "Qiantu Motor"},
    {"LWL", "Qingling Isuzu"},
    {"LLN", "Qoros"},
    {"TDM", "QUANTYA"},
    {"ZF4", "Qvale"},
    {"TRR", "Raba Bus"},
    {"LA7", "Radar Auto (Geely)"},
    {"X1D", "RAF"},
    {"SJ1", "Ree Automotive"},
    {"7VV", "Ree Automotive"},
    {"ZP8", "Regis Motors"},
    {"SCD", "Reliant Motors"},
    {"MEE", "Renault"},
    {"VF1", "Renault"},
    {"VN1", "Renault"},
    {"VYS", "Renault"},
    {"VSY", "Renault"},
    {"VS5", "Renault"},
    {"X7L", "Renault"},
    {"1XM", "Renault"},
    {"8A1", "Renault"},
    {"8G1", "Renault"},
    {"93Y", "Renault"},
    {"9FB", "Renault"},
    {"VFA", "Renault Alpine GTA"},
    {"ADR", "Renault Sandero"},
    {"VMK", "Renault Sport Spider"},
    {"SDG", "Renault Trucks"},
    {"VF2", "Renault Trucks"},
    {"VF6", "Renault Trucks"},
    {"VG6", "Renault Trucks"},
    {"VG7", "Renault Trucks"},
    {"VG8", "Renault Trucks"},
    {"KNM", "Renault&Nissan"},
    {"WRA", "Renders"},
    {"YA5", "Renders"},
    {"V61", "Respo"},
    {"MB7", "Reva Electric"},
    {"VTP", "Rieju"},
    {"V39", "Rimac Automobili"},
    {"7PD", "Rivian SUV"},
    {"7FC", "Rivian truck"},
    {"1RF", "Roadmaster"},
    {"Z7T", "RoAZ"},
    {"UWR", "Robus"},
    {"UU5", "Rocar"},
    {"1YJ", "Rokon"},
    {"ZAH", "Rolfo"},
    {"SCA", "Rolls Royce"},
    {"SLA", "Rolls Royce SUV"},
    {"UU4", "Roman SA"},
    {"54F", "Rosenbauer"},
    {"SAR", "Rover & MG Rover"},
    {"MBF", "Royal Enfield"},
    {"ME3", "Royal Enfield"},
    {"94N", "RWM"},
    {"YS3", "Saab"},
    {"YTN", "Saab"},
    {"JF4", "Saab 9-2X"},
    {"3G0", "Saab 9-4X"},
    {"5S3", "Saab 9-7X"},
    {"YK1", "Saab-Valmet"},
    {"LRB", "SAIC"},
    {"LRE", "SAIC"},
    {"LSG", "SAIC"},
    {"LSH", "SAIC"},
    {"LSJ", "SAIC"},
    {"LZW", "SAIC"},
    {"LZF", "SAIC Iveco"},
    {"LSF", "SAIC Maxus"},
    {"LSK", "SAIC Maxus"},
    {"LSV", "SAIC Volkswagen"},
    {"NAS", "SAIPA"},
    {"X9N", "Samoltor"},
    {"LL0", "Sanmen"},
    {"U1A", "Sanos"},
    {"VSE", "Santana Motors"},
    {"VSF", "Santana Motors"},
    {"LFX", "Sany Heavy Industry"},
    {"W08", "Saturn Astra"},
    {"1G8", "Saturn car"},
    {"5GZ", "Saturn MPV/SUV"},
    {"3GS", "Saturn SUV"},
    {"MXB", "SAvtoProm"},
    {"NSA", "SAZ"},
    {"SBS", "Scammell"},
    {"SZA", "Scania"},
    {"VLU", "Scania"},
    {"XLE", "Scania"},
    {"X8U", "Scania"},
    {"YS2", "Scania"},
    {"YS4", "Scania"},
    {"3AX", "Scania"},
    {"3BE", "Scania"},
    {"8A3", "Scania"},
    {"9BS", "Scania"},
    {"UHE", "Scanvogn"},
    {"VAV", "Schwarzmuller"},
    {"SDC", "SDC"},
    {"VSS", "SEAT/Cupra"},
    {"VK1", "SEG"},
    {"Z76", "SEMAZ"},
    {"LM8", "Seres"},
    {"WKK", "Setra"},
    {"NPM", "Seyit Usta"},
    {"LZG", "Shacman"},
    {"LZ0", "Shandong"},
    {"LJU", "Shanghai Maple"},
    {"5CX", "Shelby Series 1"},
    {"99H", "Shineray"},
    {"LHA", "Shuanghuan"},
    {"MD9", "Shuttle"},
    {"MLB", "Siam Yamaha"},
    {"XZB", "SIMAZ"},
    {"LJV", "Sinotruk"},
    {"LZK", "Sinotruk"},
    {"LZZ", "Sinotruk"},
    {"PRA", "Sinotruk"},
    {"2BP", "Ski-Doo"},
    {"MEX", "Skoda"},
    {"NAD", "Skoda"},
    {"TMB", "Skoda"},
    {"TMP", "Skoda"},
    {"Y6U", "Skoda"},
    {"LME", "Skyworth"},
    {"HES", "Smart"},
    {"WME", "Smart"},
    {"W1A", "smart"},
    {"SUU", "Solaris Bus"},
    {"5BP", "Solectria"},
    {"YH1", "Solifer"},
    {"YS7", "Solifer"},
    {"EBE", "Sollers-Auto"},
    {"RUN", "Sollets-Auto"},
    {"X4T", "Sommer"},
    {"WS7", "Sono Motors"},
    {"VVC", "SOR Ibérica"},
    {"LDN", "Soueast"},
    {"LTN", "Soueast"},
    {"93X", "Souza Ramos"},
    {"4VZ", "Spartan Motors"},
    {"KPB", "SsangYong"},
    {"KPT", "SsangYong"},
    {"KPA", "SsangYong/KG"},
    {"XVU", "Start"},
    {"YE6", "STAS"},
    {"XG5", "Stavropoulos"},
    {"2FW", "Sterling"},
    {"480", "Sterling"},
    {"3F6", "Sterling Bullet"},
    {"JLS", "Sterling Truck 360"},
    {"2FZ", "Sterling Trucks"},
    {"RA1", "Steyr"},
    {"VAG", "Steyr-Daimler-Puch"},
    {"WS5", "StreetScooter"},
    {"PLP", "Subaru"},
    {"4S3", "Subaru"},
    {"JF1", "Subaru"},
    {"JF2", "Subaru SUV"},
    {"4S4", "Subaru SUV/MPV"},
    {"JF3", "Subaru truck"},
    {"MMR", "Subaru/Tan"},
    {"LAL", "Sundiro Honda"},
    {"LJM", "Sunlong bus"},
    {"MS0", "Super Seven Star"},
    {"JSA", "Suzuki"},
    {"JS1", "Suzuki"},
    {"JS2", "Suzuki"},
    {"LMC", "Suzuki"},
    {"MBH", "Suzuki"},
    {"MB8", "Suzuki"},
    {"MMS", "Suzuki"},
    {"PMS", "Suzuki"},
    {"PPP", "Suzuki"},
    {"TSM", "Suzuki"},
    {"VTT", "Suzuki"},
    {"2S2", "Suzuki"},
    {"5SA", "Suzuki"},
    {"8AK", "Suzuki"},
    {"9CD", "Suzuki"},
    {"JST", "Suzuki Across SUV"},
    {"5Z6", "Suzuki Equator"},
    {"JKS", "Suzuki Marauder"},
    {"MS3", "Suzuki Myanmar"},
    {"JK8", "Suzuki QUV620F"},
    {"JS3", "Suzuki SUV"},
    {"2S3", "Suzuki SUV"},
    {"JS4", "Suzuki truck"},
    {"MBU", "Swaraj Vehicles"},
    {"SGD", "Swift"},
    {"LM6", "SWM"},
    {"ZN0", "SWM"},
    {"RFG", "SYM"},
    {"SWV", "TA-N"},
    {"WTA", "Tabbert"},
    {"RFC", "Taiwan Golden Bee"},
    {"LFG", "Taizhou"},
    {"SDB", "Talbot"},
    {"VF4", "Talbot"},
    {"VSC", "Talbot"},
    {"ZX1", "TAM"},
    {"ADX", "Tata Automobile"},
    {"KLT", "Tata Daewoo"},
    {"KLU", "Tata Daewoo"},
    {"MAT", "Tata Motors, Rover"},
    {"TMT", "Tatra"},
    {"TNT", "Tatra"},
    {"TNU", "Tatra"},
    {"VV9", "TAURO"},
    {"TNE", "TAZ"},
    {"V31", "TAZ"},
    {"ZLF", "Tazzari"},
    {"SWH", "Temared"},
    {"NLT", "Temsa"},
    {"5DG", "Terex Advance Mixer"},
    {"XP7", "Tesla Europe"},
    {"SFZ", "Tesla Roadster"},
    {"LRW", "Tesla, Inc."},
    {"5YJ", "Tesla, Inc."},
    {"7G2", "Tesla, Inc."},
    {"7SA", "Tesla, Inc."},
    {"NLZ", "Tezeller"},
    {"MLH", "Thai Honda"},
    {"MLC", "Thai Suzuki"},
    {"MLE", "Thai Yamaha"},
    {"YYC", "Think Nordic"},
    {"1T7", "Thomas Built Buses"},
    {"1T8", "Thomas Built Buses"},
    {"LEC", "Tianjin Qingyuan"},
    {"LB7", "Tibet New Summit"},
    {"1TD", "Timpte"},
    {"VVG", "Tisvol"},
    {"NM4", "Tofas"},
    {"NL1", "TOGG"},
    {"X0T", "Tonar"},
    {"AHT", "Toyota"},
    {"JTD", "Toyota"},
    {"JTK", "Toyota"},
    {"JTN", "Toyota"},
    {"JT2", "Toyota"},
    {"JT4", "Toyota"},
    {"JT5", "Toyota"},
    {"MBJ", "Toyota"},
    {"MR0", "Toyota"},
    {"MR1", "Toyota"},
    {"MR2", "Toyota"},
    {"MR3", "Toyota"},
    {"NMT", "Toyota"},
    {"RL4", "Toyota"},
    {"SB1", "Toyota"},
    {"TW1", "Toyota"},
    {"XW7", "Toyota"},
    {"YAR", "Toyota"},
    {"2T1", "Toyota"},
    {"1NX", "Toyota"},
    {"3MY", "Toyota"},
    {"4T1", "Toyota"},
    {"4T4", "Toyota"},
    {"5YF", "Toyota"},
    {"6T1", "Toyota"},
    {"7A4", "Toyota"},
    {"8AJ", "Toyota"},
    {"9BR", "Toyota"},
    {"93R", "Toyota"},
    {"5TD", "Toyota & Lexus"},
    {"JTB", "Toyota bus"},
    {"JT7", "Toyota bus/van"},
    {"4G3", "Toyota Cavalie"},
    {"VNK", "Toyota Motor"},
    {"JTG", "Toyota MPV/bus"},
    {"JTE", "Toyota MPV/SUV"},
    {"JT3", "Toyota MPV/SUV"},
    {"4T3", "Toyota MPV/SUV"},
    {"WZ1", "Toyota Supra"},
    {"JTL", "Toyota SUV"},
    {"JTM", "Toyota SUV"},
    {"JTP", "Toyota SUV"},
    {"2T3", "Toyota SUV"},
    {"7MU", "Toyota SUV"},
    {"7SV", "Toyota SUV"},
    {"3TM", "Toyota truck"},
    {"3TY", "Toyota truck"},
    {"4TA", "Toyota truck"},
    {"5TB", "Toyota truck"},
    {"5TE", "Toyota truck"},
    {"5TF", "Toyota truck"},
    {"JT1", "Toyota van"},
    {"JTF", "Toyota van/truck"},
    {"SNT", "Trabant"},
    {"1TK", "Trail King"},
    {"VFN", "Trailor"},
    {"ECW", "Trans-Alfa bus"},
    {"1TD", "Transcraft Corporation"},
    {"ZAJ", "Trigano"},
    {"2LD", "Triple E"},
    {"SCG", "Triumph"},
    {"SMT", "Triumph"},
    {"97N", "Triumph"},
    {"SAT", "Triumph"},
    {"XTU", "Trolza"},
    {"VGU", "Trouillet"},
    {"SU9", "truck trailer"},
    {"YE7", "Turbos Hoet"},
    {"SDL", "TVR"},
    {"MD6", "TVS"},
    {"TEM", "Twike"},
    {"YYB", "Tysse"},
    {"X6S", "TZA"},
    {"4KE", "U.S. Electricar Consulier"},
    {"XTT", "UAZ"},
    {"ADD", "UD Trucks"},
    {"XX3", "Ujet"},
    {"M6F", "UM Lohia"},
    {"TW4", "UMM"},
    {"UVW", "UMM"},
    {"PN1", "UMW"},
    {"PN2", "UMW"},
    {"SBU", "United Trailers"},
    {"XTP", "Ural"},
    {"X1P", "Ural"},
    {"UZT", "UTB"},
    {"SDU", "Utility"},
    {"1UY", "Utility"},
    {"XWB", "UZ-Daewoo/GM"},
    {"YE1", "Van Hool"},
    {"YE2", "Van Hool"},
    {"7KG", "Vanderhall"},
    {"SKA", "Vauxhall"},
    {"SZC", "Vectrix"},
    {"VK8", "Venturi"},
    {"TJ5", "Vezeko"},
    {"5VP", "Victory"},
    {"TSC", "VIN assigned"},
    {"7AT", "VIN assigned"},
    {"7A8", "VIN assigned"},
    {"AAP", "VIN restamped"},
    {"RLA", "Vina Star"},
    {"RLL", "VinFast"},
    {"RLN", "VinFast"},
    {"X6D", "VIS-AVTO"},
    {"WVP", "Viseon Bus"},
    {"16X", "Vixen 21"},
    {"93P", "Volare"},
    {"XKM", "Volgabus"},
    {"X4K", "Volgabus"},
    {"Z07", "Volgabus"},
    {"AAV", "Volkswagen"},
    {"PPV", "Volkswagen"},
    {"VWV", "Volkswagen"},
    {"WVW", "Volkswagen"},
    {"WV1", "Volkswagen"},
    {"WV2", "Volkswagen"},
    {"WV3", "Volkswagen"},
    {"WV4", "Volkswagen"},
    {"XW8", "Volkswagen"},
    {"YBW", "Volkswagen"},
    {"1VW", "Volkswagen"},
    {"3VV", "Volkswagen"},
    {"3VW", "Volkswagen"},
    {"8AW", "Volkswagen"},
    {"9BW", "Volkswagen"},
    {"2V4", "Volkswagen Routan"},
    {"WVG", "Volkswagen SUV"},
    {"1V2", "Volkswagen SUV"},
    {"1V1", "Volkswagen truck"},
    {"YSP", "Volta Trucks"},
    {"LVY", "Volvo"},
    {"PNV", "Volvo"},
    {"XLB", "Volvo"},
    {"X9P", "Volvo"},
    {"YV1", "Volvo"},
    {"YV3", "Volvo"},
    {"YV5", "Volvo"},
    {"3CE", "Volvo"},
    {"4V5", "Volvo"},
    {"4VA", "Volvo"},
    {"4VE", "Volvo"},
    {"4VG", "Volvo"},
    {"4VH", "Volvo"},
    {"4VM", "Volvo"},
    {"7JD", "Volvo"},
    {"7JR", "Volvo"},
    {"9BV", "Volvo"},
    {"SLV", "Volvo bus"},
    {"LYV", "Volvo"},
    {"YV4", "Volvo SUV"},
    {"SCV", "Volvo truck"},
    {"YB1", "Volvo truck"},
    {"4V3", "Volvo truck"},
    {"4V6", "Volvo truck"},
    {"93K", "Volvo truck"},
    {"YV2", "Volvo truck"},
    {"VN4", "Voxan"},
    {"2E4", "Voyager"},
    {"LDP", "Voyah"},
    {"523", "VPG"},
    {"WVM", "VW-MAN"},
    {"953", "VW/MAN"},
    {"1JJ", "Wabash"},
    {"WWA", "Wachenhut"},
    {"LM0", "Wangye"},
    {"SNE", "Wartburg"},
    {"SXY", "Wecon"},
    {"SWR", "Weekend"},
    {"LYB", "Weichai"},
    {"SBW", "Weightlifter"},
    {"2WK", "Western Star"},
    {"3BJ", "Western Star"},
    {"5KJ", "Western Star"},
    {"5KK", "Western Star"},
    {"1WU", "White Motor"},
    {"4V1", "WhiteGMC"},
    {"SUD", "Wielton"},
    {"WCM", "Wilcox"},
    {"4WW", "Wilson"},
    {"YVV", "WiMa"},
    {"1WT", "Winnebago"},
    {"SUC", "Wiola"},
    {"WWC", "WM Meyer"},
    {"LH0", "WM Motor"},
    {"LL2", "WM Motor"},
    {"SC5", "Wrightbus"},
    {"HGX", "Wuling"},
    {"LK6", "Wuling"},
    {"HA0", "Wuxi Sundiro"},
    {"LL3", "Xiamen"},
    {"LMV", "XPeng Motors"},
    {"L1N", "XPeng Motors"},
    {"JYA", "Yamaha"},
    {"JYE", "Yamaha"},
    {"LPR", "Yamaha"},
    {"RLC", "Yamaha"},
    {"VTL", "Yamaha"},
    {"ZD0", "Yamaha"},
    {"5Y4", "Yamaha"},
    {"9C6", "Yamaha"},
    {"JY3", "Yamaha ATV"},
    {"JY4", "Yamaha ATV"},
    {"RKR", "Yamaha Motor"},
    {"LBZ", "Yantai"},
    {"LJS", "Yaxing Coach"},
    {"NNY", "Yeksan"},
    {"LKG", "Youngman Lotus"},
    {"LLX", "Yudo Auto"},
    {"LJD", "Yueda Kia"},
    {"LNY", "Yuejin"},
    {"LKT", "Yunnan Lifan"},
    {"MXL", "Yutong"},
    {"LZY", "Yutong Zhengzhou"},
    {"R10", "ZAP"},
    {"VX1", "Zastava/Yugo"},
    {"XTE", "ZAZ"},
    {"Y6D", "ZAZ"},
    {"LZL", "Zengcheng"},
    {"2FH", "Zenn"},
    {"538", "Zero"},
    {"LFF", "Zhejiang"},
    {"LK8", "Zhejiang"},
    {"LLP", "Zhejiang"},
    {"LUJ", "Zhejiang"},
    {"LBB", "Zhejiang Qianjiang"},
    {"LEH", "Zhejiang Riya"},
    {"LJN", "Zhengzhou Nissan"},
    {"LDY", "Zhongtong Bus"},
    {"LAP", "Zhuzhou Nanfang"},
    {"XTZ", "ZiL"},
    {"LZS", "Zongshen"},
    {"LBM", "Zongshen Piaggio"},
    {"7Z0", "Zoox"},
    {"ZAX", "Zorzi"},
    {"LJ8", "Zotye Auto"},
    {"SWZ", "Zremb"},
    {"LTA", "ZX Auto"},
    {"", "Unknown"} 
};

const char* get_vehicle_manufacturer(const char* vin) {
    for (int i = 0; manufacturers[i].code[0] != '\0'; i++) {
        if (strncmp(vin, manufacturers[i].code, 3) == 0) {
            return manufacturers[i].name;
        }
    }
    return "Unknown";
}

int32_t vin_decoder_app(void* p) {
    UNUSED(p);
    VinDecoderApp* app = vin_decoder_app_alloc();

    Gui* gui = furi_record_open(RECORD_GUI);
    view_dispatcher_attach_to_gui(app->view_dispatcher, gui, ViewDispatcherTypeFullscreen);
    scene_manager_next_scene(app->scene_manager, VinDecoderMainMenuScene);
    view_dispatcher_run(app->view_dispatcher);

    vin_decoder_app_free(app);
    return 0;
}
